From: Jan Beulich Date: Fri, 8 Apr 2016 20:33:17 +0000 (+0200) Subject: x86/vMSI-X: fix qword write covering vector control field X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~1311 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https://%22%22/%22http:/www.example.com/cgi/%22https:/%22%22?a=commitdiff_plain;h=7d8519f63ab703e519efe1e8a6d8ccd65b8a803b;p=xen.git x86/vMSI-X: fix qword write covering vector control field Along with using the upper 32 bits of the written value, the address also needs advancing, so that msix_write_completion() will use the correct address for re-invocation of msixtbl_write(). Signed-off-by: Jan Beulich Acked-by: Andrew Cooper --- diff --git a/xen/arch/x86/hvm/vmsi.c b/xen/arch/x86/hvm/vmsi.c index 58b16c3bfc..d450a3c6bb 100644 --- a/xen/arch/x86/hvm/vmsi.c +++ b/xen/arch/x86/hvm/vmsi.c @@ -295,6 +295,7 @@ static int msixtbl_write(struct vcpu *v, unsigned long address, if ( len != 8 || !index ) goto out; val >>= 32; + address += 4; } /* Exit to device model when unmasking and address/data got modified. */